/** Affichage de bugs et messages
  *
  * @author     Nemesis (nemesis_tt@yahoo.fr)
  * @version    26/05/04
  */

public class Logueur {
    
    /** Fenêtre principale */
    private static Patcheur patcheur = null;
    
    /** Erreurs possibles */
    public static final int ERROR_NONE  = 0;
    public static final int ERROR_FILE  = 1;
    public static final int ERROR_CD    = 2;
    public static final int ERROR_DRIVE = 3;
    public static final int ERROR_SECTOR= 4;
    public static final int ERROR_ROOM  = 5;
    public static final int ERROR_OVER  = 6;
    public static final int ERROR_DIR   = 7;
    public static final int ERROR_ISO   = 8;
    
    /** Dernière erreur */
    private static int last_error = ERROR_NONE; 
    
    public static int getError() {
        return last_error;
    }
    
    public static boolean noError() {
        return (last_error==ERROR_NONE);
    }
    
    public static void setLog(Patcheur patcheur_) {
        patcheur = patcheur_;
    }
    
    public static void loguer(Object objet, int erreur) {
        String message;
        switch (erreur) {
            case ERROR_NONE :   message = "OK"; break;
            case ERROR_FILE :   message = "Fichier"; break;
            case ERROR_CD :     message = "CD incorrect"; break;
            case ERROR_DRIVE :  message = "Lecteur inaccessible"; break;
            case ERROR_SECTOR : message = "Secteur incorrect"; break;
            case ERROR_ROOM :   message = "Room incorrecte"; break;
            case ERROR_OVER :   message = "Débordement"; break;
            case ERROR_DIR :    message = "Dossier inaccessible"; break;
            case ERROR_ISO :    message = "Image inaccessible"; break;
            default :           message = "Bug inconnu";
        }
        loguer_texte(objet + "->" + message);
        if (erreur!=ERROR_NONE) {
            last_error = erreur;
            if (patcheur!=null) {
                patcheur.getOnglets().setSelectedComponent(patcheur.getLog());
            }
        }
    }
    
    public static void loguer_ligne() {
        // Pas top, j'ai la flemme
        loguer_texte("------------------------------------------------");
    }
    
    public static void loguer_titre(String message) {
        loguer_ligne();
        loguer_texte(message);
        loguer_ligne();
    }
    
    public static void loguer_texte(String message) {
        if (patcheur==null)
            System.out.println(message);
        else
            patcheur.getLog().println(message);
    }
}
